﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Iudicium.Contactos
{
    [Serializable]
    public class Contacto
    {

        #region Atributos

        private int _contactoId;
        private int _propietarioId;
        private int _tipoContatoId;
        private string _descripcionTipoContacto;
        private string _descripcion;
        private TipoPropietario _tipoPropietario;

        #endregion

        #region Propiedades

        public int ContactoId
        {
            set { _contactoId = value; }
            get { return _contactoId; }
        }

        public int PropietarioId
        {
            set { _propietarioId = value; }
            get { return _propietarioId; }
        }

        public int TipoContactoId
        {
            set { _tipoContatoId = value; }
            get { return _tipoContatoId; }
        }

        public string DescripcionTipoContacto
        {
            set { _descripcionTipoContacto = value; }
            get { return _descripcionTipoContacto; }
        }

        public string Descripcion
        {
            set { _descripcion = value; }
            get { return _descripcion; }
        }

        public TipoPropietario TipoPropietarioContacto
        {
            set { _tipoPropietario = value; }
            get { return _tipoPropietario; }
        }

        #endregion

        public enum TipoPropietario
        {
            Persona,
            Oficina
        }

        public Contacto(int contactoId, int propietarioId, int tipoContactoId, 
            string descripcion, string descripcionTipoContacto)
        {
            this._contactoId = contactoId;
            this._propietarioId = propietarioId;
            this._tipoContatoId = tipoContactoId;
            this._descripcion = descripcion;
            this._descripcionTipoContacto = descripcionTipoContacto;
        }

        public Contacto(int contactoId, int propietarioId, int tipoContactoId,
            string descripcion, string descripcionTipoContacto, TipoPropietario tipoPropietario)
        {
            this._contactoId = contactoId;
            this._propietarioId = propietarioId;
            this._tipoContatoId = tipoContactoId;
            this._descripcion = descripcion;
            this._descripcionTipoContacto = descripcionTipoContacto;
            this._tipoPropietario = tipoPropietario;
        }

        public Contacto()
        {
            this._contactoId = 0;
            this._propietarioId = 0;
            this._tipoContatoId = 0;
            this._descripcion = "";
            this._descripcionTipoContacto = "";
        }
    }
}